import pymysql

class mysql_ion:
    #内部属性的赋予，在创建对象的时候，自动引用 __init__
    def __init__(self,host,user,port,password,database='db_ithaima'):
        self.host=host
        self.user=user
        self.port=port
        self.pasword=password
        self.database=database

    def mysql_connetc(self):
        #不接收这个函数的话连接对象会丢失，就像鼠标，没有鼠标就不能进行后续操作
        #里面是块调用函数；外面也是一个函数（一个类的方法/函数）
        # 1. 建立连接（获取"遥控器"）
        a = pymysql.connect(
            host=self.host,
            user=self.user,
            port=self.port,
            password=self.pasword,
            database=self.database
        )
        #从连接创建游标：a.cursor()对象调用方法，也必须接收，就像光标，没有他不能执行sql语句
        #对象他有内部属性，也可以调用方法(属性——外部属性)
        # 2. 创建游标（获取"操作手柄"）
        cursor = a.cursor()
        #用游标执行sql语句
        cursor.execute("desc stu")
        # 4. 提交事务（确保数据写入）
        a.commit()
        data = cursor.fetchall()
        cursor.close()
        a.close()

    def mysql_create(self):
        a = pymysql.connect(
            host=self.host,
            user=self.user,
            port=self.port,
            password=self.pasword,
            database=self.database
        )
        corsor = a.cursor()
        sql = """
        create table stu2 (
            id INT PRIMARY KEY AUTO_INCREMENT,
            name varchar(20) not null,
            age int not null
        )
        """
        corsor.execute(sql)
        a.commit()
        data = corsor.fetchall()
        print(data)
        corsor.close()
        a.close()

    def mysql_insert(self,pandom):
        a = pymysql.connect(
            host=self.host,
            user=self.user,
            port=self.port,
            password=self.pasword,
            database=self.database
        )
        corsor = a.cursor()
        #这是一个元组，必须用括号括起来，一个也需要，不然报错——("张三", 20)  # 这是一个元组,可以传入一个值包装成元组
        sql = """
                insert into stu2 (id,name,age) values (%s,%s,%s)
                """
        corsor.execute(sql,(pandom))
        a.commit()
        #data = corsor.fetchall()
        for i in pandom:
            print(i)
        corsor.close()
        a.close()
if __name__ == '__main__':
    db = mysql_ion('192.168.88.101','root',3306,'Aa123456@','db_itheima')
    db.mysql_connetc()
    #db.mysql_create()
    #直接传一个元组进去
    db.mysql_insert((3,'ljl','20'))


